package com.phiture.erp.produce.core.service;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import com.phiture.erp.produce.core.pojo.vo.ErpProduceProcessPageReqVO;
import com.phiture.erp.produce.core.pojo.vo.ErpProduceProcessRespVO;
import com.phiture.erp.produce.core.pojo.vo.ErpProduceProcessSaveReqVO;
import com.phiture.erp.produce.dal.entity.ErpProduceProcessDO;

import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;

/**
 * 工艺工序 Service 接口
 *
 * @author lekaihuai
 */
public interface ErpProduceProcessService {

    /**
     * 创建工艺工序
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createProduceProcess(@Valid ErpProduceProcessSaveReqVO createReqVO);

    /**
     * 更新工艺工序
     *
     * @param updateReqVO 更新信息
     */
    void updateProduceProcess(@Valid ErpProduceProcessSaveReqVO updateReqVO);

    /**
     * 删除工艺工序
     *
     * @param id 编号
     */
    void deleteProduceProcess(Long id);

    /**
     * 获得工艺工序
     *
     * @param id 编号
     * @return 工艺工序
     */
    ErpProduceProcessDO getProduceProcess(Long id);

    /**
     * 获得工艺工序分页
     *
     * @param pageReqVO 分页查询
     * @return 工艺工序分页
     */
    PageResult<ErpProduceProcessDO> getProduceProcessPage(ErpProduceProcessPageReqVO pageReqVO);

    List<ErpProduceProcessDO>  getProduceProcessAll();
    /**
     *
     */
    public Map<Long, ErpProduceProcessDO> getProcessMap(Collection<Long> ids);
}